<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>WeakMap</title>
</head>

<body>
  <div id="container">内容</div>
  <script>
    /* 
      声明一个 WeakMap 类似Object对象
      WeakMap是Map的变体，也是键值对的集合，但它的键必须是弱引用的对象，并且不可枚举，而值没有限制，还是保持任意类型。
      当WeakMap的键所指的对象不再被引用时，其键和其值将被GC自动回收。
      WeakMap主要优势在于不干扰收集，从而能够有效地防止内存泄漏。
      它适用于隐藏信息、存储DOM节点等场景。
    */
    
    var container = document.getElementById("container");
    var node = new WeakMap();
    node.set(container, {
      dight: 0
    })

    container.addEventListener('click', function() {
      var current = node.get(this);
      // console.log(current, 12211, this)
      current.dight++;
      node.set(this, current)
    }, false)

  </script>
</body>

</html>